/**
 * 
 */
package servlets;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import metier.Article;
import metier.Utilisateur;

import org.apache.log4j.Logger;

import persistence.Strategie;

/**
 * @author hozakan
 *
 */
public class CreateArticle extends BaseServlet {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = -8444629241083694780L;
	private static final Logger LOGGER = Logger.getLogger(CreateArticle.class);

	/* (non-Javadoc)
	 * @see servlets.BaseServlet#specificDoGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
	 */
	@Override
	protected void specificDoGet(HttpServletRequest request,
			HttpServletResponse response) {
		//Nothing to do
	}

	/* (non-Javadoc)
	 * @see servlets.BaseServlet#specificDoPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
	 */
	@Override
	protected void specificDoPost(HttpServletRequest request,
			HttpServletResponse response) {
		Utilisateur user = (Utilisateur) request.getSession(false).getAttribute("user");
		String articleTitle = (String) request.getParameter("articleTitle");
		String articleResume = (String) request.getParameter("articleResume");
		String idCategorie = (String) request.getParameter("idCategorie");
		String articleContent = (String) request.getParameter("articleContent");
		if (LOGGER.isDebugEnabled()) {
			LOGGER.debug("détail de l'article : ");
			LOGGER.debug("Titre : "+articleTitle);
			LOGGER.debug("Résumé : "+articleResume);
			LOGGER.debug("Catégorie : "+idCategorie);
			LOGGER.debug("Contenu : "+articleContent);
		}
		Article art = new Article();
		art.setTitre(articleTitle);
		art.setContenu(articleContent);
		art.setDateCreation(new java.util.Date());
		art.setIdCategorie(Integer.parseInt(idCategorie));
		art.setResume(articleResume);
		if (user != null) {
			art.setIdUtilisateur(user.getId());
		} else {
			art.setIdUtilisateur(0);
		}
		try {
			Strategie.getInstance().getDAOFactory().getDAO(art).enregistrer(art);
			GoToAdministration servlet = new GoToAdministration();
			servlet.doGet(request, response);
		} catch (IOException e) {
			LOGGER.error("Une exception est intervenue durant l'enregistrement d'un article : "+e.getMessage());
		} catch (ServletException e) {
			LOGGER.error("Une exception est intervenue durant l'enregistrement d'un article : "+e.getMessage());
			e.printStackTrace();
		} catch (Exception e) {
			LOGGER.error("Une exception est intervenue durant l'enregistrement d'un article : "+e.getMessage());
		}
	}

}
